/**
 * date：2010-11-15
 * author：eason
 * description:提示信息弹窗动作类.
 * 该类主要针对BaseAlerFrame的弹出进行了封装。调用act()方法时，实现了窗体弹出。
 */
package com.pickgliss.action
{
	import com.pickgliss.action.BaseAction;
	import com.pickgliss.toplevel.StageReferance;
	import com.pickgliss.ui.ComponentSetting;
	import com.pickgliss.ui.LayerManager;
	import com.pickgliss.ui.controls.Frame;
	import com.pickgliss.ui.controls.alert.BaseAlerFrame;
	
	public class AlertAction extends BaseAction
	{
		private var _alert : BaseAlerFrame;
		private var _layerType:int;
		private var _blockBackgound : int;
		
		private var _soundStr : String;
		private var _center : Boolean;
		
		/**
		 * 构造函数。 
		 * @param alert 要弹出的窗体。
		 * @param layerType 层级类型。指定在哪个层弹出窗体
		 * @param blockBackgound 蒙板类型。
		 * @param soundStr 要播放的声音的字符串。为null时不播放声音。
		 * @param center 是否需要居中。默认为true。
		 * 
		 */		
		public function AlertAction(alert : BaseAlerFrame, layerType : int, blockBackgound : int, 
									  soundStr : String = null, center : Boolean = true)
		{
			_alert = alert;
			_layerType = layerType;
			_blockBackgound = blockBackgound;
			_soundStr = soundStr;
			_center = center;
		}
		/**
		 * 执行动作。 
		 * 实现窗体的弹出。
		 */		
		public override function act():void
		{
			if(_soundStr && ComponentSetting.PLAY_SOUND_FUNC is Function){
				ComponentSetting.PLAY_SOUND_FUNC(_soundStr)
			}
			
			LayerManager.Instance.addToLayer(_alert,_layerType,_alert.info.frameCenter,_blockBackgound);
			StageReferance.stage.focus = _alert;
		}
	}
}